6 שורות שצריך לכתוב כדי לגרום לדפדפן להוריד קובץ במקום לנסות לפתוח ולהציג אותו בעצמו.
בואו נראה איך לשלוח למשתמש קובץ בעזרת PHP ולגרום לדפדפן להוריד אותו.
התקשורת בין שרת לדפדפן מורכבת משני חלקים:
header - כותרת שמכילה מידע על התוכן.
content - התוכן עצמו.
עלינו לומר לדפדפן בכותרת שהוא עומד לקבל מהשרת קובץ, והדפדפן ישמח להציע למשתמש לשמור אותו.
$file = "mashka.rar";
header ("Content-Type: application/octet-stream");
header ("Accept-Ranges: bytes");
header ("Content-Length: ".filesize($file));
header ("Content-Disposition: attachment; filename=".$file);
readfile($file);
header ("Content-Type: application/octet-stream");
header ("Accept-Ranges: bytes");
header ("Content-Length: ".filesize($file));
header ("Content-Disposition: attachment; filename=".$file);
readfile($file);
מה בעצם עשינו בקוד הזה?
השורה הראשונה היא שם הקובץ שיש לשלוח לדפדפן להורדה.
השורה השנייה היא סוג הקובץ. היא צריכה להיות כפי שרשום למעלה. אם נגיד לדפדפן שסוג הקובץ הוא html, הוא ינסה להציג אותו, ואם נגיד לו שסוג הקובץ הוא application/octet-stream, הוא ינסה לשמור אותו.
השורה השלישית אומרת לדפדפן שהשרת ישלח לו את הקובץ מתחילתו עד סופו. בפועל אפשר לשלוח חצי מהקובץ, או חלק כלשהו מהאמצע.
בשורה הרביעית אמרנו לדפדפן את גודל הקובץ, כדי שהוא ידע מתי הסוף ויציג למשתמש כמה נשאר.
בשורה החמישית אמרנו לדפדפן באיזה שם לשמור את הקובץ. הקובץ בשרת שלכם יכול להיקרא באופן שונה לגמרי. בשורה הזאת אנחנו בעצם מחליטים תחת איזה שם יציע הדפדפן לשמור את הקובץ אצל המשתמש.
בשורה השישית קוראים את תוכן הקובץ ושולחים אותו לדפדפן.
תגובות לכתבה:
תודה
אדיר! תודה רבה!
יפה מאוד , תודה גבר!
מועיל (:
סלח לי ,אשמח לדעת מה השימוש הזה כלומר מתי או באיזה תנאים אני צריך להשתמש בקוד הזה?
תדה!
כשאתה צריך לגרום לדפדפן לשמור קובץ כלשהו.
אהבתי, מאוד שימושי.
תודה.
תודה רבה על המדריך. :)
"בפועל אפשר לשלוח חצי מהקובץ, או חלק כלשהו מהאמצע."
אם כבר כתבת את המדריך, יש סיכוי שתוכל להסביר כיצד לעשות זאת? ^_^